#include <jni.h>
#include <stdio.h>
#include "InstanceMethodCall.h"

JNIEXPORT void JNICALL
Java_InstanceMethodCall_nativeMethod(JNIEnv *env, jobject obj)
{
	/* Get a reference to obj’s class */
	jclass cls = (*env)->GetObjectClass(env, obj);
	jmethodID mid = (*env)->GetMethodID(env, cls, "callback", "()V");
	if (mid == NULL) {
		return ;
	}
	printf("In C\n");

	(*env)->CallVoidMethod(env, obj, mid);
}








/**
 * @brief 在加载动态链接库的时候，JVM会去尝试查找此函数，可以在此函数做一些 native函数的注册
 *
 * @retval JNI的版本
 */
/*
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved){
    printf("I'm in JNI_OnLoad \n");
    //每个java进程只有一个JavaVM
    JNIEnv *env = NULL;
    jint result = -1;
    if (vm->GetEnv((void**)&env, JNI_VERSION_1_6) != JNI_OK) {
        return result;
    }
    
    static JNINativeMethod gMethods[] = {
        {
            "get",
            "()Ljava/lang/jint",
            (void*)Java_HelloWorld_get,            
        },
        {
            "set",
            "(Ljava/lang/jint)V",
            (void*)Java_HelloWorld_set,
        }
    };
	jclass clazz = (*env)->FindClass(env, "com/study/jni/HelloWorld");
    (env)->RegisterNatives(env, clazz, gMethods, NELEM(gMethods));
    return JNI_VERSION_1_6;
}
*/

